<?xml version="1.0" encoding="UTF-8"?>

<xsl:transform version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:pressless="http://www.pressless-is-priceless.org/"
  xmlns:addon="http://www.pressless-is-priceless.org/addon"
  xmlns:xhtml1="http://www.w3.org/1999/xhtml"
  xmlns="http://www.w3.org/1999/XSL/Transform"
  >

  <xsl:variable name="addons" select="document('../addons.xml')/addon:addons" />

  <xsl:template match="/addon:addons">
    <xsl:element name="xsl:transform">
      <xsl:attribute name="version">1.0</xsl:attribute>

      <xsl:for-each select="addon:addon">
        <xsl:element name="xsl:include">
          <xsl:attribute name="href">addons/<xsl:value-of select="addon:name" />/transform.xsl</xsl:attribute>
        </xsl:element>
      </xsl:for-each>

      <xsl:element name="xsl:template">
        <xsl:attribute name="match">node()</xsl:attribute>
        <xsl:attribute name="mode">prepend</xsl:attribute>

        <xsl:for-each select="addon:addon">
          <xsl:element name="xsl:apply-templates">
            <xsl:attribute name="select">.</xsl:attribute>
            <xsl:attribute name="mode">prepend-<xsl:value-of select="addon:name" /></xsl:attribute>
          </xsl:element>
        </xsl:for-each>
      </xsl:element>

      <xsl:element name="xsl:template">
        <xsl:attribute name="match">node()</xsl:attribute>
        <xsl:attribute name="mode">append</xsl:attribute>

        <xsl:for-each select="addon:addon">
          <xsl:element name="xsl:apply-templates">
            <xsl:attribute name="select">.</xsl:attribute>
            <xsl:attribute name="mode">append-<xsl:value-of select="addon:name" /></xsl:attribute>
          </xsl:element>
        </xsl:for-each>
      </xsl:element>
    </xsl:element>
  </xsl:template>
</xsl:transform>
